using System.Diagnostics;
using Admin2025.Application.common;
using Admin2025.Application.Dtos;

namespace Admin2025.Application.Services;

public interface IAppUserService
{
    // Task<IEnumerable<UserDto>> GetAllAsync(); // 获取所有用户
    Task<UserDto> GetByIdAsync(Guid id); // 根据ID获取用户
    Task CreateAsync(CreateUserDto dto); // 创建新用户
    Task UpdateAsync(Guid id, UpdateUserDto dto); // 更新用户信息
    Task DeleteAsync(Guid id); // 删除用户
    Task EnableAsync(Guid id); // 启用用户
    Task<ApiResult> DisableAsync(Guid id); // 禁用用户
    Task AssignRoleAsync(Guid userId, Guid roleId); // 分配角色给用户
    Task RemoveRoleAsync(Guid userId, Guid roleId); // 移除用户的角色
    Task UpdateAvatarAsync(Guid id, string avatarUrl); // 更新用户头像
    Task UpdateNicknameAsync(Guid id, string nickname); // 更新用户昵称
    Task ChangePasswordAsync(Guid id, string oldPwd, string newPwd); // 修改用户密码
    Task<PagedResult<UserDto>> GetUsersWithRolesAsync(PageRequestDto dto);
   Task<PagedResult<UserDto>> GetPagedAsync(PageRequestDto dto);
}
